\documentclass{tutor}
\usepackage[utf8]{inputenc}

\metadata{
    \author Fabio Mendes
    \creationdate 4/10/2010
    \status testing
    \difficulty easy
    \time 5m
    \itemtype test
}

\begin{document}

\begin{python}
from random import *
from maple import *

# Função cujo limite para um ponto fora da origem (na diagonal x=+/-y) existe.   

roots = range(-5, 6)
del roots[roots.index(0)]
rand = lambda: roots.pop(randrange(len(roots)))
x0 = rand()
if choice([True, False]):
    diag = 1
    y0 = x0
else:
    diag = -1
    y0 = -x0
    del roots[roots.index(y0)]
    
poly1 = x**2 + rand() * y**2 
poly2 = choice([x, y]) - rand()
numer = expand((x - diag * y) * poly1) 
denom = expand((x - diag * y) * poly2)
func = numer / denom

# 1a: resultado correto
rcorreto = M.simplify(subs(x==x0, y==y0, poly1) / subs(x==x0, y==y0, poly2))

# 2a: avalia incorretamente em cima dos eixos (não passa pelo ponto da diagonal)
reixox = subs(x==x0, y==0, func)
reixoy = subs(x==0, y==y0, func)
assert reixox != reixoy

# 3a: invoca outra curva complicada que não cruza o ponto desejado
rdiag = rcorreto
rparabola = subs(x==x0, subs(y==x**2, func))
assert rparabola != rdiag

# 4a: diz que o limite existe, mas calcula um valor incorreto
rerrado = 0
assert rcorreto != rerrado

# 5a: invoca indeterminação para concluir que limite não existe
\end{python}

\begin{itembody}

Determine o limite da expressão
    $$\lim_{(x,y)\rightarrow\py{(x0,y0)}} \py{func}.$$
    
\begin{multiplechoice}

  \solution Para calcular o limite, fatoramos o numerador em $\py{numer} = (x-y)\py{(poly1)}$
    e o denominador em $\py{denom} = (x-y) \py{(poly2)}$. O termo $x - y$ que carrega
    a divergência no denominador se anula e assim podemos calcular o limite por
    substituição.
  
  \choice{1.0} O limite existe e é igual a $\py{rcorreto}$.
  \explanation Cálculo correto!

  \choice{0.0} O limite não existe pois os caminhos sobre o eixo x (y=0) e sobre 
    o eixo y (x=0) apresentam resultados diferentes.
  \explanation Nem o eixo x, nem o eixo y cruzam o ponto $\py{(x0,y0)}$ 
    onde se deseja calcular o limite.

  \choice{0.0} O limite não existe pois os caminhos sobre o eixo x (y=0) e sobre 
    a diagonal $y=\py{diag * x}$ apresentam resultados diferentes.
  \explanation O eixo x não cruza o ponto $\py{(x0,y0)}$  onde se deseja 
   calcular o limite.

  \choice{0.0} O limite existe e é igual a $0$.
  \explanation Cálculo incorreto (possivelmente calculou o limite para 
    $(x,y)\rightarrow(0,0)$).

  \choice{0.0} O limite não existe pois em $(\py{x0},\py{y0})$  há uma indeterminação
    do tipo $0/0$.
  \explanation A presença de indeterminação não diz nada sobre a existência ou 
    não de limites. Normalmente, calculamos limites justamente quando aparece
    uma indeterminação.	
\end{multiplechoice}

\end{document}

